package com.wuyu.acl.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SwaggerConfig {

    /**
     * 接口文档的基本信息
     * @return
     */
    @Bean
    public OpenAPI springAclOpenApi() {
        return new OpenAPI()
                .info(new Info().title("service-acl API")
                        .version("v1"));
    }

    /**
     * 对每一类接口分组管理
     * @return
     */
    @Bean
    public GroupedOpenApi adminApi() {
        return GroupedOpenApi.builder()
                .group("用户管理")
                .pathsToMatch("/admin/acl/user/**")
                .build();
    }

    @Bean
    public GroupedOpenApi adminRoleApi() {
        return GroupedOpenApi.builder()
                .group("用户角色管理")
                .pathsToMatch("/admin/acl/admin_role/**")
                .build();
    }

    @Bean
    public GroupedOpenApi permissionApi() {
        return GroupedOpenApi.builder()
                .group("权限管理")
                .pathsToMatch("/admin/acl/permission/**")
                .build();
    }

    @Bean
    public GroupedOpenApi roleApi() {
        return GroupedOpenApi.builder()
                .group("角色管理")
                .pathsToMatch("/admin/acl/role/**")
                .build();
    }

    @Bean
    public GroupedOpenApi rolePermissionApi() {
        return GroupedOpenApi.builder()
                .group("角色权限管理")
                .pathsToMatch("/admin/acl/role_permission/**")
                .build();
    }
}
